package com.ruoyi.indicators.service;

import com.ruoyi.indicators.domain.Indicators;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 指标管理Service接口
 *
 * @author ruoyi
 * @date 2023-05-13
 */
public interface IIndicatorsService
{
    /**
     * 查询指标管理
     *
     * @param indicatorsId 指标管理主键
     * @return 指标管理
     */
    public Indicators selectIndicatorsByIndicatorsId(Integer indicatorsId);

    /**
     * 查询指标管理列表
     *
     * @param indicators 指标管理
     * @return 指标管理集合
     */
    public List<Indicators> selectIndicatorsList(Indicators indicators);

    /**
     * 新增指标管理
     *
     * @param indicators 指标管理
     * @return 结果
     */
    public int insertIndicators(Indicators indicators);

    /**
     * 修改指标管理
     *
     * @param indicators 指标管理
     * @return 结果
     */
    public int updateIndicators(Indicators indicators);

    /**
     * 批量删除指标管理
     *
     * @param indicatorsIds 需要删除的指标管理主键集合
     * @return 结果
     */
    public int deleteIndicatorsByIndicatorsIds(Integer[] indicatorsIds);

    /**
     * 删除指标管理信息
     *
     * @param indicatorsId 指标管理主键
     * @return 结果
     */
    public int deleteIndicatorsByIndicatorsId(Integer indicatorsId);

    /**
     * 获得全部指标管理信息
     *
     * @return 结果
     */
    public List<Indicators> selectAllIndicators();

    /**
     * 批量设置父节点信息
     *
     * @return 结果
     */
    public int setFather(@Param("indicatorsIds") Integer[] indicatorsIds, @Param("father")Integer father);

    /**
     * 修改更新值
     *
     * @param indicators 指标管理
     * @return 结果
     */
    public int updateValue(Indicators indicators);

    /**
     * 获得全部节点
     *
     * @return 结果
     */
    public List<Integer> selectAllFather();


    /**
     * 修改子节点的父节点
     *
     * @param indicatorsIds 指标管理主键
     * @return 结果
     */
    public int updateFather(Integer[] indicatorsIds);

    /**
     * 获得最大ID
     *
     * @return 结果
     */
    public Integer getMaxId();

}
